package com.sunreal.paygateway.common;

import java.util.Collection;

import com.sunreal.paygateway.sys.exception.BusinessException;
import com.sunreal.paygateway.sys.exception.WebErrCode;

/**
 * 功能描述：//TODO
 *
 * @Author 彭广
 * @Date 2019/4/17
 */
public class AssertUtil {
    /**
     * 不是null
     *
     * @param obj
     * @return
     */
    public static boolean isNotNull(Object obj) {
        if (obj != null) {
            return true;
        }
        return false;
    }

    /**
     * 不为空
     *
     * @param obj
     * @return
     */
    public static boolean isNotBlank(Object obj) {
        //不能为null
        if (!isNotNull(obj)) {
            return false;
        }
        //其他判断
        if (String.class.isAssignableFrom(obj.getClass())) {
            if (((String) obj).length() == 0) {
                return false;
            }
        } else if (Collection.class.isAssignableFrom(obj.getClass())) {
            if (((Collection<?>) obj).isEmpty()) {
                return false;
            }
        } else if (obj.getClass().isArray()) {
            if (((Object[]) obj).length == 0) {
                return false;
            }
        }
        return true;
    }

    /**
     * 对象不能为null或者空，否则抛出异常
     *
     * @param obj  对象值
     * @param msg 对象名称，异常提示信息
     * @throws BusinessException
     */
    public static void notBlank(Object obj, String msg) throws BusinessException {
        if (!isNotBlank(obj)) {
            throw new BusinessException(WebErrCode.ERROR_PARAMS.getErroCode(), WebErrCode.ERROR_PARAMS.getErroMsg() + "：》》" + msg + "");
        }
    }
}
